package cn.b.sky.user.dao;

import cn.b.sky.user.service.model.ParameterEntity;
import cn.b.sky.user.service.model.ParameterFolder;
import cn.b.sky.user.service.model.ParameterValue;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SytemParameterDao {
  /**
   * 
   * <strong>Title : selectAllParameters<br></strong>
   * <strong>Description : </strong>获取通用配置树<br> 
   * <strong>Create on : 2016-3-14 下午5:56:29<br></strong>
   * <p>
   * @param siteCode
   * @return
   * List<ParameterFolder>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<ParameterFolder> selectAllParameters(String siteCode);

  /**
   * 
   * <strong>Title : selectParameterFolderByCode<br></strong>
   * <strong>Description : </strong>获取通用配置的目录详情<br> 
   * <strong>Create on : 2016-3-14 下午5:57:37<br></strong>
   * <p>
   * @param folderCode
   * @param siteCode
   * @return
   * ParameterFolder
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public ParameterFolder selectParameterFolderByCode(@Param(value = "fcode") String folderCode,
                                                     @Param(value = "siteCode") String siteCode);

  /**
   * 
   * <strong>Title : selectParameterByPCode<br></strong>
   * <strong>Description : </strong>获取通用配置的项目详情<br> 
   * <strong>Create on : 2016-3-14 下午5:57:59<br></strong>
   * <p>
   * @param pcode
   * @param siteCode
   * @return
   * ParameterEntity
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public ParameterEntity selectParameterByPCode(@Param(value = "pcode") String pcode,
                                                @Param(value = "siteCode") String siteCode);

  /**
   * 
   * <strong>Title : selectParameterValueByPcode<br></strong>
   * <strong>Description : </strong>获取通用配置的枚举值<br> 
   * <strong>Create on : 2016-3-14 下午5:58:20<br></strong>
   * <p>
   * @param pcode
   * @param siteCode
   * @return
   * List<ParameterValue>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<ParameterValue> selectParameterValueByPcode(@Param(value = "pcode") String pcode,
                                                          @Param(value = "siteCode") String siteCode);

  /**
   * 
   * <strong>Title : saveParameterFolder<br></strong>
   * <strong>Description : </strong>保存目录<br> 
   * <strong>Create on : 2016-3-14 下午5:58:41<br></strong>
   * <p>
   * @param folder
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveParameterFolder(ParameterFolder folder);

  /**
   * 
   * <strong>Title : saveParameterEntity<br></strong>
   * <strong>Description : </strong>保存项目<br> 
   * <strong>Create on : 2016-3-14 下午5:58:50<br></strong>
   * <p>
   * @param parameter
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveParameterEntity(ParameterEntity parameter);

  /**
   * 
   * <strong>Title : saveParameterValue<br></strong>
   * <strong>Description : </strong>保存枚举值<br> 
   * <strong>Create on : 2016-3-14 下午5:59:06<br></strong>
   * <p>
   * @param value
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveParameterValue(ParameterValue value);

  /**
   * 
   * <strong>Title : deleteParameterFolder<br></strong>
   * <strong>Description : </strong>删除目录<br> 
   * <strong>Create on : 2016-3-14 下午5:59:17<br></strong>
   * <p>
   * @param folderCode
   * @param siteCode
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void deleteParameterFolder(@Param(value = "fcode") String folderCode,
                                    @Param(value = "siteCode") String siteCode);

  /**
   * 
   * <strong>Title : deleteParameterFolder<br></strong>
   * <strong>Description : </strong>删除项目<br> 
   * <strong>Create on : 2016-3-14 下午5:59:17<br></strong>
   * <p>
   * @param folderCode
   * @param siteCode
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void deleteParameterEntity(@Param(value = "pcode") String pcode, @Param(value = "siteCode") String siteCode);

  /**
   * 
   * <strong>Title : deleteParameterValue<br></strong>
   * <strong>Description : </strong>删除某一个枚举值<br> 
   * <strong>Create on : 2016-3-14 下午5:59:49<br></strong>
   * <p>
   * @param pcode
   * @param value
   * @param siteCode
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void deleteParameterValue(@Param(value = "pcode") String pcode, @Param(value = "value") String value,
                                   @Param(value = "siteCode") String siteCode);

  /**
   * 
   * <strong>Title : deleteParameterValueByPcode<br></strong>
   * <strong>Description : </strong>删除某个项目的枚举值<br> 
   * <strong>Create on : 2016-3-14 下午6:00:19<br></strong>
   * <p>
   * @param pcode
   * @param siteCode
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void deleteParameterValueByPcode(@Param(value = "pcode") String pcode,
                                          @Param(value = "siteCode") String siteCode);

  /**
   * 
   * <strong>Title : updateParameterEntity<br></strong>
   * <strong>Description : </strong>更新项目<br> 
   * <strong>Create on : 2016-3-14 下午6:00:49<br></strong>
   * <p>
   * @param parameter
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void updateParameterEntity(ParameterEntity parameter);

  /**
   * 
   * <strong>Title : queryParameterValueBySql<br></strong>
   * <strong>Description : </strong>根据sql查询值<br> 
   * <strong>Create on : 2016-3-14 下午6:01:03<br></strong>
   * <p>
   * @param sql
   * @return
   * List<ParameterValue>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<ParameterValue> queryParameterValueBySql(@Param(value = "sql") String sql);

  /**
   * 
   * <strong>Title : updateParameterFolder<br></strong>
   * <strong>Description : 修改目录</strong><br> 
   * <strong>Create on : 2016-3-14 下午6:01:22<br></strong>
   * <p>
   * @param folder
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void updateParameterFolder(ParameterFolder folder);

}
